我將利用老爺機來測試parallel在performance上所帶來的效果。
系統資訊
![]()
![]()
測試table筆數
![]()
Alter table 測試
取消max degree of parallelis(抑制產生平行計畫)
![]()
執行修改(non-parallel)
ALTER TABLE dbo.nabk_p2 ADD CONSTRAINT PK_nabk_p2 PRIMARY KEY (SYS_SERIAL);
Go
執行計畫:索引插入(34%)和排序(64%)成本最高
![]()
![]()
執行修改(parallel)
![]()
![]()
總表
![]()
Select測試
執行sql statement(non-parallel)
select * from dbo.nabk_p2 t2 join dbo.NABK_p1 t1
on t1.sys_serial= t2.sys_serial and t1.POLICY_NO=t2.POLICY_NO and t2.sys_serial between 5071001 and 6271001
order by 2 ;
![]()
執行計畫:排序(97%)成本最高
![]()
執行sql statement(parallel)
計畫中多了平行處理原則,但整體執行計畫變得複雜許多。
![]()
執行計畫:排序(82%)成本最高
![]()
總表
![]()
結論:SQL Server parallel看來沒有偷懶,經過一些簡單測試
發現SQL SERVER果然依CPU執行數量平均分散WorkLoad進而提升資料庫整體效能,該技術實在可多加利用。